1. Field of the Invention
The present invention relates to protocols for interconnecting networks using connection oriented protocols, such as asynchronous transfer mode (ATM), with networks using connectionless protocols, such as Ethernet or Token Ring; and more particularly to improving performance of such systems for multicast and broadcast messages.
2. Description of Related Art
ATM is an emerging network standard based on a connection oriented network protocol. In order to transmit data between users of the ATM network, a connection is first set up between the users, and then a point to point transmission of the data is accomplished from the source through an ATM switch to the destination. When ATM switches are used to provide data connectivity for personal computers and other network devices, a number of problems occur when running networking software such as Novell IPX, TCP/IP or Xerox XNS protocols existing on the installed network PCs and servers. These network layer protocols are designed to run on a connectionless type local area network, such as Ethernet, Token Ring, or FDDI networks where the packets are placed on the network fabric and heard by all other end stations on the LAN. To provide connectivity among these network types, vendors of ATM equipment have agreed upon a set of conventions and standards called LAN emulation. A standards body which manages the ATM specification, called ATM Forum, has published a document entitled LAN Emulation Over ATM Specification--Version 1.0, which is incorporated by reference herein.
One primary problem that LAN emulation addresses is that most network software, based on network layer protocols, such as Netware IPX, Xerox XNS, TCP/IP, AppleTalk, and OSI, uses an end to end path, medium access control (MAC) address identification technique based on broadcast or multicast packets. When an end station A wants to communicate with another end station B, the first end station A issues a multicast packet to the network which is heard by all other end stations in the same multicast domain. Based on some higher layer information in the packet, such as user name or server name, the end station B recognizes that it is the one that should respond and does so with a unicast packet to the original end station A. This works effectively in Ethernet, Token Ring, and FDDI networks, where packets are placed on a network fabric and are heard by all other end stations. This is analogous to a person, Sarah, in an open room fill of other people yelling out "This is Sarah, is Joe here?", and having Joe hear that call and answer back, "Yes, Sarah, I'm here." Then the conversation can occur between the two at that point.
However, an ATM environment does not work in the same fashion. In this environment, packets are sent only to a single destination at the MAC layer. No other device in the network has access to the data except the recipient. The originator of the data packet, end station A, must know the ATM path address of the recipient end station B, prior to sending the packet. This is analogous to a person, Sarah, being in a closed room with a phone and wanting to talk to Joe. Sarah must know Joe's phone number and dial it to talk to Joe. The problem with this connection oriented method is that in most existing network environments, the installed end stations are running software which is not capable of knowing the address in advance of each other end station it might want to communicate with. The LAN emulation standard published by the ATM Forum addresses this problem by providing a higher layer set of services that emulate the behavior of a shared medium local area network, such as Ethernet. These services include a LAN emulation configuration server (LECS), a LAN emulation server (LES), and a broadcast and unknown server (BUS). The LECS contains a list of all the ports on the edge devices (network intermediate system devices that connect end systems or non-ATM intermediate system devices to the ATM network fabric) on the network. For each port on each edge device, the LECS identifies the multicast domain (also referred to as a virtual LAN), of which devices connected to that port are members. In addition, it identifies the LES and BUS servers that might be used for each port on the edge device. When an edge device is initialized or reset, it queries the LECS for this information.
The LAN emulation server LES is used by the edge device connecting a particular end station to the ATM network. When it is initialized, the edge device queries the LECS to find out which LES to connect to, and then whenever it gets a unicast packet from the end station, the edge device queries the LES to find out the ATM path address of the destination in the system. That address is then used to route the packet through the ATM switches.
The broadcast and unknown server BUS is used when an edge device receives a broadcast or a multicast packet from an end station, or when it receives a packet with a destination address that is not identified by the LES. When such a packet is received, the edge device sends the packet to the BUS. The BUS then identifies all other end stations which are configured as part of the same multicast domain, and sends the packet to all end systems that are part of the same multicast domain. Using the same analogy as above, Sarah calls BUS, saying she wants to talk to Joe in Santa Clara, Calif., and then BUS dials every phone number in Santa Clara leaving a message that Sarah wants to talk to Joe, and leaving her phone number. Joe, along with everyone else, gets the message, and then calls Sarah back and has a conversation with her.
The approach to broadcast and multicast messages adopted by the LAN emulation standard for ATM helps in forwarding multicast messages to all stations, and relies upon filtering at the end stations as is done in existing LANs. However, a relatively large number of end stations do not need to receive the broadcast or multicast messages. Particularly, some end stations within a single multicast domain may not be using the same network level software, which generated the multicast message. Thus, it is desirable to provide a service which can intercept these messages, and forward them directly to their destination, instead of broadcasting them to every station.